import { IPSControlAction } from '../ipscontrol-action';
import { IPSDEKanban } from './ipsdekanban';
import { PSDEDataViewImpl } from './psdedata-view-impl';

export class PSDEKanbanImpl extends PSDEDataViewImpl implements IPSDEKanban {
  protected updategrouppscontrolaction: IPSControlAction | null = null;

  getUpdateGroupPSControlAction(): IPSControlAction | null {
    if (this.updategrouppscontrolaction != null) return this.updategrouppscontrolaction;
    const value = this.M.getUpdateGroupPSControlAction;
    if (value == null) {
      return null;
    }
    this.updategrouppscontrolaction = this.getPSControlHandlerMust().findPSControlHandlerAction(value);
    return this.updategrouppscontrolaction;
  }

  get updateGroupPSControlAction(): IPSControlAction | null {
    return this.getUpdateGroupPSControlAction();
  }

  getUpdateGroupPSControlActionMust(): IPSControlAction {
    const value = this.getUpdateGroupPSControlAction();
    if (value == null) {
      throw new Error('未指定更新分组行为');
    }
    return value;
  }

  get cls(): string {
    return 'PSDEKanbanImpl';
  }

  instanceof(cls: string): boolean {
    if (cls == 'control.dataview.IPSDEKanban') return true;
    return super.instanceof(cls);
  }
}
